1. Field of the Invention
The present invention relates generally to database backups, and in particular to performing a granular restore of a database from a differential backup.
2. Description of the Related Art
Database backup and recovery are challenging processes that become more difficult as a company's database grows and as the demands on its online availability increases, limiting the time available for backup and recovery operations. A database, such as a Microsoft® Structured Query Language (SQL) database, is often backed up as a single, monolithic database file, which contains all the tables, records, and indexing information for the database. However, backing up the entire database may consume large amounts of storage memory, processing cycles, and network bandwidth.
Instead of backing up the entire database, a differential backup may be performed to reduce database downtime and the amount of data being sent over the network and stored within the backup storage medium. A full backup of the database is performed at least once prior to doing a differential backup. After a full backup, subsequent backups can be differential backups. A differential backup may contain only the changes made to the database since the last full backup. This is an efficient approach to backing up databases, because databases are often backed up on a regular schedule, and typically only a small amount of data in the database will change between consecutive backups.
Once a backup of the database has been stored, a user may wish to restore the database or one or more items from the database on an as-needed basis. If a user needs to restore the entire database, then the entire database may be restored to the server hosting the database. However, when a user only wants to restore a few objects to the database, unless proper mechanisms are in place to allow for a granular restore, the entire database may need to be restored.
After performing a differential backup, the data stored in the backup storage medium will be split between the differential backup and the last full backup, and determining which of these two backups to pull data from when performing a granular restore can be a slow and inefficient process. One technique currently used requires restoring the entire full backup and then playing back the changes from the differential backup. This is an inefficient and slow technique when only a few items of the database need to be restored.
In view of the above, improved methods and mechanisms for performing a granular restoration of database items from a differential backup are desired.